const { execSync } = require('child_process');
const path = require('path');
const fs = require('fs');

// 格式化所有文件
try {
  console.log('开始格式化代码...');
  
  // 格式化 Vue 文件
  execSync('npx prettier --write "pages/**/*.vue"', { stdio: 'inherit' });
  console.log('Vue 文件格式化完成');
  
  // 格式化 App.vue
  execSync('npx prettier --write "App.vue"', { stdio: 'inherit' });
  console.log('App.vue 格式化完成');
  
  // 格式化 JavaScript 文件
  execSync('npx prettier --write "*.js" "uniCloud-aliyun/cloudfunctions/**/*.js"', { stdio: 'inherit' });
  console.log('JavaScript 文件格式化完成');
  
  // 格式化 JSON 文件 (排除带注释的 manifest.json)
  const jsonFiles = fs.readdirSync('./')
    .filter(file => file.endsWith('.json') && file !== 'manifest.json');
  
  jsonFiles.forEach(file => {
    execSync(`npx prettier --write "${file}"`, { stdio: 'inherit' });
  });
  console.log('JSON 文件格式化完成');
  
  // 格式化 SCSS 文件
  execSync('npx prettier --write "*.scss" "pages/**/*.scss"', { stdio: 'inherit' });
  console.log('SCSS 文件格式化完成');
  
  // 格式化 CSS 文件
  execSync('npx prettier --write "pages/**/*.css"', { stdio: 'inherit' });
  console.log('CSS 文件格式化完成');
  
  // 特殊处理 manifest.json (保留注释)
  console.log('注意: manifest.json 未格式化，因为它包含注释');
  
  console.log('所有文件格式化完成！');
} catch (error) {
  console.error('格式化过程中出错:', error);
} 